In recent years, computer vision and other machine learning applications have become increasingly popular. For instance, such applications are being implemented in an increasingly large number of settings and environments. As such applications have grown in popularity, so too have they grown in complexity. In this manner, computer vision applications implemented on mobile devices having limited memory resources may be constrained by such limited memory resources.
In such limited memory settings, memory allocation and memory efficiency can become very important. For instance, it can be advantageous to limit an amount of memory required for execution of a computer vision and/or other machine learning application by a mobile device.
As one example, in certain constrained memory environments, a failure to properly allocate the constrained memory during execution of a neural network can be catastrophic and can, for example, require a complete reboot of the device executing the neural network. Stated differently, if the memory required for execution of the neural network exceeds the maximum availability of the memory (e.g., exceeds the constraints), then certain data may be lost or otherwise unable to be stored, causing execution of the neural network to fail.